const dotenv = require('dotenv');

// 加载环境变量
dotenv.config();

module.exports = {
    url: process.env.REDIS_HOST || 'redis://127.0.0.1:6379',
    database: parseInt(process.env.REDIS_DB || '0', 10), // 指定使用的数据库索引
    options: {
        // 连接选项
        socket: {
            connectTimeout: 10000, // 连接超时时间（毫秒）
            keepAlive: 5000, // 保持连接的间隔（毫秒）
            reconnectStrategy: (retries) => {
                // 指数退避重连策略
                if (retries > 10) {
                    return false; // 停止重连
                }
                return Math.min(retries * 500, 5000); // 重连间隔时间（毫秒）
            }
        },
        // 命令选项
        commandTimeout: 5000, // 命令执行超时（毫秒）
        readonly: false, // 只读模式
        // 集群支持
        enableAutoPipelining: true, // 启用自动管道功能
        disableOfflineQueue: false, // 禁用离线队列
        enableOfflineQueue: true, // 启用离线队列
        // 错误处理
        maxRetriesPerRequest: 3, // 每个请求的最大重试次数
        // 数据库选择
        database: parseInt(process.env.REDIS_DB || '0', 10) // 指定使用的数据库索引
    }
}